Skip to main content

使用数据包引用用户输入的详细信息

Zapier 会将用户认证和输入表单中的数据存储在 bundle 对象中,用于 API 调用。您可以在集成中使用 {{bundle.bundleName.field}}${bundle.bundleName.field} 来引用这些数据,具体取决于上下文。请将 bundleName 替换为数据包名称,并将 field 替换为所需的输入字段键或 API 响应字段键。

您可以通过以下方式引用 bundle 对象中的字段:

  • 在表单模式(默认模式)下,使用 {{bundle.bundleName.field}}

  • 在代码模式下,使用标准的 JavaScript 语法。例如:直接引用字段,如 return bundle.bundleName.field;或使用模板字符串,如 ${bundle.bundleName.field}

另请参阅:何时使用占位符或大括号?

要引用 bundle 对象中的嵌套字段,请使用点表示法,如 field.nestedfield。例如,{{bundle.inputData.data.name}} 指的是嵌套在 data 字段内的 name 字段。

Zapier 集成包括以下数据包:

  • bundleauthDatainputDatametarawRequestcleanedRequestoutputDatatargetURLsubscribeData

  • process.env

authData

引用方式:{{bundle.authData.field}}${bundle.authData.field}

它包含用户在认证输入表单中输入的数据,例如 基本认证 中的 username 字段,以及 API 密钥、基本、会话和摘要认证方法中配置的额外字段。

对于这些方法,来自输入表单或令牌交换端点的字段可以使用 {{bundle.authData.field}} 访问,其中 “field” 与字段名称匹配。但是,使用 OAuth v2 认证方法时,用户在认证输入表单中输入的数据不会包含在 {{bundle.authData}} 中,而是可在 {{bundle.inputData}} 中访问。

此外,对于 OAuth v2、会话认证和摘要认证,authData 包括令牌交换端点返回的所有数据,可使用 {{bundle.authData.field}} 引用(将 field 替换为 API 响应中的字段名称)。

例如,通常通过 {{bundle.authData.access_token}}{{bundle.authData.accessToken}} 来访问访问令牌值。

然而,authData 数据包不支持嵌套对象:所有从认证函数返回的值必须位于顶层。该数据包也不包括 OAuth v2 或会话认证流程中的中间步骤值,例如 redirect_uri

常用的 authData 字段包括:

  • 用户名:{{bundle.authData.username}}

  • 密码:{{bundle.authData.password}}

  • 访问令牌:{{bundle.authData.access_token}}

inputData

引用方式:{{bundle.inputData.field}}${bundle.inputData.field}

在认证配置中,包括 连接标签inputData 包含测试 API 调用返回的字段,以及更复杂认证流程中的中间步骤值,例如 OAuth v2 中的 redirect_uri。这些值通常用于为新集成连接添加 连接标签

在触发器和操作中,inputData 包含用户在本次运行的输入表单中输入的数据。{{curlies}}(来自先前 Zap 步骤的映射字段)会使用先前步骤的原始数据进行渲染。

如果您需要获取输入字段数据时保留原始的 {{curlies}} 而非先前步骤的数据,请改用 {{bundle.inputDataRaw.field}}。这情况较少发生。

常用的 inputData 字段包括:

  • Zapier 重定向 URI:{{bundle.inputData.redirect_uri}}

  • 授权码:{{bundle.inputData.code}}

  • 选定触发事件 ID:{{bundle.inputData.id}}

OAuth 配置数据注意事项

对于 OAuth 配置,用户通过 “请求模板” 提交的认证表单数据会存储在 bundle.inputData 中。

meta

引用方式:{{bundle.meta.field}}${bundle.meta.field}

bundle.meta 包含用户操作的相关信息。其可用字段选项如下:

keydefaultdescription
isLoadingSamplefalse如果为 true,则此运行是通过 Zap 编辑器手动启动的
isFillingDynamicDropdownfalse如果为 true,则此轮询用于填充动态下拉菜单。您只需返回指定的字段(如 id 和 name),返回所有字段也可
isPopulatingDedupefalse如果为 true,则此轮询的结果将用于初始化去重列表,而非触发 Zap。您应尽可能获取更多项目。另请参阅:去重
limit-1您应获取的项目数量。-1 表示无限制。请尽量在调用中实现
page0用于分页,以唯一标识应返回的结果页
isTestingAuthfalse(遗留属性)如果为 true,则轮询是由用户测试帐户触发的(通过点击“测试”或设置期间)。我们使用这些数据填充认证标签,主要用于验证认证请求成功

rawRequest 和 cleanedRequest

注意:bundle.rawRequestbundle.cleanedRequest 仅在 webhook 的 perform、OAuth v2 的 getAccessToken 或回调操作的 performResume 中可用。

引用方式:{{bundle.rawRequest.field}}{{bundle.cleanedRequest.field}}${bundle.rawRequest.field}${bundle.cleanedRequest.field}

它们分别包含触发 perform 方法的 HTTP 请求的原始或清理后信息,或触发 OAuth v2 认证的 getAccessToken 调用时的用户浏览器请求信息。您可以使用 cleanedRequest 引用单个字段。

如果需要访问头部数据,请使用 bundle.rawRequest。在 bundle.rawRequest 中,除 Content-LengthContent-Type 外的头部会以 Http- 为前缀,所有头部采用 Camel-Case 命名。

outputData

引用方式:{{bundle.outputData}}${bundle.outputData}

注意:bundle.outputData 仅在回调操作的 performResume 中可用 - 请阅读此处 了解此高级功能。

使用 bundle.outputData 会返回您在 perform 中原始返回的数据,从而允许您将其与 bundle.rawRequestbundle.cleanedRequest 结合使用。

targetUrl

引用方式:{{bundle.targetUrl}}${bundle.targetUrl}

在使用 REST hooks 的触发器中,它会返回您的应用在触发事件发生时应发送数据的 URL,例如 https://hooks.zapier.com/1234/abcd

subscribeData

引用方式:{{bundle.subscribeData}}${bundle.subscribeData}

在使用 REST hooks 的触发器中,它包括您的 API 从 performSubscribe 函数返回的数据。这应包含所有用于向您的服务器发送 DELETE 请求以停止向 Zapier 发送 webhook 数据(当用户关闭 Zap 时)所需的信息。

process.env

引用方式:{{process.env.field}}${process.env.field}

常用的 process.env 字段包括:

  • 客户端密钥:{{process.env.CLIENT_SECRET}}

  • 客户端 ID:{{process.env.CLIENT_ID}}

需要帮助?告诉我们您的问题,我们会为您连接合适的资源或联系支持。